Piping Serverを使ってhttpsだけでどんな環境からも情報収集
https://gyazo.com/b2a980d58ca7fc9e993f6725a36e0d64
やりたいこと
収集した情報を一か所に垂れ流したい
特定のアプリに頼らず、標準機能だけで実現したい
ゆるくやりたい
情報収集方法
1. ニュースサイトなど
RSSがあればそれで取得
2. SNSなど
TwitterのAPIなどから取得(記事作成当時)
Xになった今は無理か?
3. それ以外(RSSがないサイトなど)
feed43などで無理やりRSSにする(記事作成当時)
feed43はサービス終了していた
スクレイピングなど
基本的にRSSフィードで取得できるけど、それ以外もほしい
RSSはSlack、SNSはX…ではなく、一か所に集約したい
要件
情報の配信方法
1. 秘密情報は流れないし流さない
誰に見られてもいい
2. リアルタイム性は求めていない
10:00に出された情報が15:00に流れてきてもいい
3. 別に取りこぼしてもいい
10:00から2時間分取得できませんでした、でもOK
上記の2時間分を改めて取得する、ギャップ漏れ対策もいらない
4. 過去に遡れなくてもいい
情報の取得方法
1. どこからでも見たい
2. 1つのアプリ(機能)で見たい
実現方法
案: Slackを使う
1. /feedコマンドでRSSを取得できる
2. Slack APIを使えばスクレイピングした結果なども投稿できる
実はこれで「やりたいこと」を99%実現できている
残り1%の要望…
困ったこと
見るにはSlackアプリが必要(一応Webからも見れる)
https通信ができる環境ならどこからでも見たい…
申請が通らない
ブロックされている
迂回してなんとかしたい…
構成
これで99%達成できている
code:mmd
flowchart LR
end
ここから残り1%用に拡張
code:mmd
flowchart LR
subgraph Glitch.me
end
nodeスクリプト -- curl --> ppng
nodeスクリプト -- 定期実行 --> nodeスクリプト
end
end
コマンドプロンプト -- curl --> ppng
ppng -- 一覧取得 --> コマンドプロンプト
end
やっていること
send側
Slackの#ppng_chにとにかくRSSなどを登録する
Slack API経由で定期的に#ppng_chの内容を取得する
cronなどに登録する
最後に取得した時間くらいは保存しておいた方がよい
#ppng_chの内容をPiping Serverに送る
recieve側
Piping Serverの内容を取得するスクリプトを無限ループさせておく
効果
2021年くらいからずっと動かして、毎日使っている
便利